package com.hui.admin.common.result;

import com.hui.admin.common.enums.ErrorCodeEnum;

/**
 * 统一返回对象构造器
 */
public final class Results {

    public static Result<Void> success() {
        return new Result<Void>()
                .setCode(Result.SUCCESS_CODE)
                .setMessage(Result.SUCCESS_MESSAGE)
                .setData(null);
    }

    /**
     * 构造成功响应（数据）
     */
    public static <T> Result<T> success(T data) {
        return new Result<T>()
                .setCode(Result.SUCCESS_CODE)
                .setMessage(Result.SUCCESS_MESSAGE)
                .setData(data);
    }

    /**
     * 构造成功响应（数据、消息）
     */
    public static <T> Result<T> success(String message, T data) {
        return new Result<T>()
                .setCode(Result.SUCCESS_CODE)
                .setMessage(message)
                .setData(data);
    }


    /**
     * 构造失败响应（枚举类）
     */
    public static Result<Void> failure(ErrorCodeEnum errorCodeEnum) {
        return new Result<Void>()
                .setCode(errorCodeEnum.getCode())
                .setMessage(errorCodeEnum.getMessage());
    }

    /**
     * 构造失败响应（自定义）
     */
    public static Result<Void> failure(String code, String message) {
        return new Result<Void>()
                .setCode(code)
                .setMessage(message)
                .setData(null);
    }


}
